﻿using System.Data;
using OfficeOpenXml;

namespace tools.office.epplus
{
    /// <summary>
    /// EPPlus 工具类
    /// </summary>
    public static class EpPlusTool
    {
        /// <summary>
        /// 读取 Excel 文件转换为 DataTable
        /// </summary>
        /// <param name="filePath">Excel 文件完整路径</param>
        /// <returns>DataTable 实例</returns>
        public static DataTable GetDataTable(string? filePath)
        {
            if (!File.Exists(filePath))
            {
                throw new InvalidOperationException("Excel 文件不存在");
            }

            // 设置个人许可证（免费）
            ExcelPackage.License.SetNonCommercialPersonal("hechenyu");

            using var ep = new ExcelPackage(filePath);
            var ews = ep.Workbook.Worksheets[0];

            // 1.不能有空列
            // 2.默认会跳过空行
            // 3.空的单元格只能在后面的列，如果在中间会报错
            return ews.Cells[ews.Dimension.Address].ToDataTable();
        }
    }
}
